﻿using SmartWMS.Domain.Base;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SmartWMS.Domain.BasicsDatum
{
    /// <summary>
    /// 产品库存详情表
    /// </summary>
    public class ProductStorageDetail:KeyEntity
    {
        /// <summary>
        /// 产品编号
        /// </summary>
        [MaxLength(50)]
        public string? ProductCode { get; set; }

        /// <summary>
        /// 批次号
        /// </summary>
        public string? Batch { get; set; }

        /// <summary>
        /// 产品名称
        /// </summary>
        [MaxLength(50)]
        public string? ProductName { get; set; }

        /// <summary>
        /// 厂家编码
        /// </summary>
        [MaxLength(50)]
        public string? FactoryNo { get; set; }

        /// <summary>
        /// 内部编码
        /// </summary>
        [MaxLength(50)]
        public string? InnerNo { get; set; }


        /// <summary>
        /// 默认供应商
        /// </summary>
        public int DefaultSupplierId { get; set; }

        /// <summary>
        /// 默认仓库
        /// </summary>
        public int DefaultWarehouseId { get; set; }


        /// <summary>
        /// 默认库位
        /// </summary>
        public int DefaultLocationId { get; set; }


        /// <summary>
        /// 规格
        /// </summary>
        public string? Specs { get; set; }

        /// <summary>
        /// 类别
        /// </summary>
        public int ProductTypeId { get; set; }


        /// <summary>
        /// 存储单位
        /// </summary>
        public string? Unit { get; set; }

        
        /// <summary>
        /// 包装类型
        /// </summary>
        public string? PackageType { get; set; }

        /// <summary>
        /// 价格
        /// </summary>
        public decimal Price { get; set; }

        /// <summary>
        /// 重量
        /// </summary>
        public string? Weight { get; set; }


        /// <summary>
        /// 当前库存
        /// </summary>
        public int Inventory { get; set; }

        /// <summary>
        /// 入库数量
        /// </summary>
        public int InStorageNum { get; set; }

        /// <summary>
        /// 出库数量
        /// </summary>
        public int OutStorageNum { get; set; }

        /// <summary>
        /// 当前剩余库存
        /// </summary>
        public int Remainder { get; set; }

        /// <summary>
        /// 记录时间
        /// </summary>
        public DateTime RecordTime { get; set; }
    }
}
